This model fact represents actuals in Work Order and is based on the IFS Applcations fact FACT_WO_TASK_ACTUALS_COST.
Note: Please refer to documentation of each model to find out about attributes used in referenced models.
Attribute | Description (where applicable) |
Aggregation of measures is based on SUM if not explicitly noted.
This section describes the basic measures in the cube. These are either measures defined in the core Information Source, in the model itself or in the ETL process. The columns have the following meaning:
Measure | Calculated Y/N | Contains Time Intelligence Y/N | Definition/Note (where applicable) | Aggregation Type | Hidden Y/N | Tabular Expression |
Actual Cost to Planning Estimate % | N | CALCULATE(DIVIDE([Cost Amount Actual],[Cost Amount Planned]),FILTER('WORK ORDER','WORK ORDER'[STATE_DB]="FINISHED")) | ||||
Actual Hours to Planning Estimate % | N | CALCULATE(DIVIDE([Total Hours Actual],[Total Hours Planned]),FILTER('WORK ORDER','WORK ORDER'[STATE_DB]="FINISHED")) | ||||
Condition-Based Maintenance Cost % | N | DIVIDE ( CALCULATE ( [Cost Amount Actual], FILTER ( 'WORK TASK ACTUALS COST', 'WORK TASK ACTUALS COST'[Dim_Source_Connection_ID] = "PmAction" || 'WORK TASK ACTUALS COST'[HAS_PM_STEP] = 1 ), FILTER ( 'WORK TASK', 'WORK TASK'[GENERATION_TYPE] = "3" ) ), [Cost Amount Actual] ) | ||||
Condition-Based Maintenance Hours % | N | DIVIDE ( CALCULATE ( [Total Hours Actual], FILTER ( 'WORK TASK ACTUALS COST', 'WORK TASK ACTUALS COST'[Dim_Source_Connection_ID] = "PmAction" || 'WORK TASK ACTUALS COST'[HAS_PM_STEP] = 1 ), FILTER ( 'WORK TASK', 'WORK TASK'[GENERATION_TYPE] = "3" ) ), [Total Hours Actual] ) | ||||
Corrective Cost Amount Actual | N | Y | SUM | N | SUM([Corrective_Cost_Amount_Actual]) | |
Corrective Cost Amount Actual RC | Y | N | SUM | N | SUM([REP_CURR_CORRECTIVE_COST_AMOUNT_ACTUAL])/[Currency Rate] | |
Corrective Cost Amount Rate % | Y | N | N | IF([Cost Amount Actual]>0,[Corrective Cost Amount Actual]/[Cost Amount Actual], BLANK()) | ||
Corrective Hours Actual | N | Y | SUM | N | SUM([Corrective_Hours_Actual]) | |
Corrective Hours Rate % | Y | N | N | IF([Total Hours Actual]>0,[Corrective Hours Actual]/[Total Hours Actual], BLANK()) | ||
Corrective Maintenance Cost % | N | CALCULATE(DIVIDE(([Corrective Cost Amount Actual]+[Reactive Cost Amount Actual]),[Cost Amount Actual]),FILTER('WORK TASK ACTUALS COST','WORK TASK ACTUALS COST'[Dim_Work_Order_ID]<>BLANK())) | ||||
Corrective Maintenance Hours % | N | CALCULATE(DIVIDE(([Corrective Hours Actual]+[Reactive Hours Actual]),[Total Hours Actual]),FILTER('WORK TASK ACTUALS COST','WORK TASK ACTUALS COST'[Dim_Work_Order_ID]<>BLANK())) | ||||
Cost Amount Actual | N | Y | SUM | N | SUM([COST_AMOUNT]) | |
Cost Amount Actual RC | Y | N | SUM | N | SUM([REP_CURR_AMOUNT_ACTUAL])/[Currency Rate] | |
Installation Cost Amount Actual | N | Y | SUM | N | SUM([Installation_Amount_Actual]) | |
Installation Cost Amount Actual RC | Y | N | SUM | N | SUM([REP_CURR_INSTALLATION_AMOUNT_ACTUAL])/[Currency Rate] | |
Installation Cost Amount Rate % | Y | N | N | IF([Cost Amount Actual]>0,[Installation Cost Amount Actual]/[Cost Amount Actual], BLANK()) | ||
Installation Hours Actual | N | Y | SUM | N | SUM([Installation_Hours_Actual]) | |
Installation Hours Rate % | Y | N | N | IF([Total Hours Actual]>0,[Installation Hours Actual]/[Total Hours Actual], BLANK()) | ||
Maintenance Material Cost % | N | CALCULATE(DIVIDE([Material Cost Amount Actual],[Cost Amount Actual]),FILTER('WORK TASK ACTUALS COST','WORK TASK ACTUALS COST'[Dim_Work_Order_ID]<>BLANK())) | ||||
Material Cost Amount Actual | N | Y | SUM | N | SUM([Material_Cost_Amount_Actual]) | |
Material Cost Amount Actual RC | Y | N | SUM | N | SUM([REP_CURR_MATERIAL_COST_AMOUNT_ACTUAL])/[Currency Rate] | |
Material Quantity Actual | N | N | SUM | N | SUM([Material_Quantity_Actual]) | |
Modification Cost Amount Actual | N | Y | SUM | N | SUM([Modification_Amount_Actual]) | |
Modification Cost Amount Actual RC | Y | N | SUM | N | SUM([REP_CURR_MODIFICATION_AMOUNT_ACTUAL])/[Currency Rate] | |
Modification Cost Amount Rate % | Y | N | N | IF([Cost Amount Actual]>0,[Modification Cost Amount Actual]/[Cost Amount Actual], BLANK()) | ||
Modification Hours Actual | N | Y | SUM | N | SUM([Modification_Hours_Actual]) | |
Modification Hours Rate % | Y | N | N | IF([Total Hours Actual]>0,[Modification Hours Actual]/[Total Hours Actual], BLANK()) | ||
Other Cost Amount Actual | N | Y | SUM | N | SUM([Other_Cost_Amount_Actual]) | |
Other Cost Amount Actual RC | Y | N | SUM | N | SUM([REP_CURR_OTHER_COST_AMOUNT_ACTUAL])/[Currency Rate] | |
Other Cost Amount Rate % | Y | N | N | IF([Cost Amount Actual]>0,[Other Cost Amount Actual]/[Cost Amount Actual], BLANK()) | ||
Other Hours Actual | N | Y | SUM | N | SUM([Other_Hours_Actual]) | |
Other Hours Rate % | Y | N | N | IF([Total Hours Actual]>0,[Other Hours Actual]/[Total Hours Actual], BLANK()) | ||
PM & PdM Corrective Hours Actual | N | CALCULATE ( [Total Hours Actual], FILTER ( 'WORK TASK ACTUALS COST', 'WORK TASK ACTUALS COST'[SRC_WO_HAS_PM_TASK] = 1 || 'WORK TASK ACTUALS COST'[SRC_WO_HAS_PM_STEP] = 1 ) ) | ||||
PM & PdM Yield | N | DIVIDE ( CALCULATE ( [PM & PdM Corrective Hours Actual], FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] IN { "FINISHED", "REPORTED", "WORKDONE" } ) ), CALCULATE ( [PM Hours Actual], FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] IN { "FINISHED", "REPORTED", "WORKDONE" } ) ) ) | ||||
PM Cost Amount Actual | N | CALCULATE ( [Cost Amount Actual], FILTER ( 'WORK TASK ACTUALS COST', 'WORK TASK ACTUALS COST'[Dim_Source_Connection_ID] = "PmAction" || 'WORK TASK ACTUALS COST'[HAS_PM_STEP] = 1 ) ) | ||||
PM Hours Actual | N | CALCULATE ( [Total Hours Actual], FILTER ( 'WORK TASK ACTUALS COST', 'WORK TASK ACTUALS COST'[Dim_Source_Connection_ID] = "PmAction" || 'WORK TASK ACTUALS COST'[HAS_PM_STEP] = 1 ) ) | ||||
Planned Work % | N | DIVIDE ( CALCULATE ( [Total Hours Actual], FILTER ( 'WORK TASK', 'WORK TASK'[ROWSTATE_DB] = "FINISHED" ), FILTER ( 'WORK TASK ACTUALS COST', 'WORK TASK ACTUALS COST'[TASK_PLAN_LINE_SEQ] <> BLANK() ) ), CALCULATE ( [Total Hours Actual], FILTER ( 'WORK TASK', 'WORK TASK'[ROWSTATE_DB] = "FINISHED" ) ) ) | ||||
Preventive Cost Amount Actual | N | Y | SUM | N | SUM([Preventive_Cost_Amount_Actual]) | |
Preventive Cost Amount Actual RC | Y | N | SUM | N | SUM([REP_CURR_PREVENTIVE_COST_AMOUNT_ACTUAL])/[Currency Rate] | |
Preventive Cost Amount Rate % | Y | N | N | IF([Cost Amount Actual]>0,[Preventive Cost Amount Actual]/[Cost Amount Actual], BLANK()) | ||
Preventive Hours Actual | N | Y | SUM | N | SUM([Preventive_Hours_Actual]) | |
Preventive Hours Rate % | Y | N | N | IF([Total Hours Actual]>0,[Preventive Hours Actual]/[Total Hours Actual], BLANK()) | ||
Preventive Maintenance Cost % | N | DIVIDE([PM Cost Amount Actual],[Cost Amount Actual]) | ||||
Preventive Maintenance Hours % | N | DIVIDE([PM Hours Actual],[Total Hours Actual]) | ||||
Proactive Work % | N | CALCULATE ( DIVIDE ( ( [Corrective Hours Actual] + [PM Hours Actual] ), [Total Hours Actual] ), FILTER ( 'WORK TASK ACTUALS COST', 'WORK TASK ACTUALS COST'[Dim_Work_Order_ID] <> BLANK () ) ) | ||||
Project Cost Amount Actual | N | Y | SUM | N | SUM([Project_Cost_Amount_Actual]) | |
Project Cost Amount Actual RC | Y | N | SUM | N | SUM([REP_CURR_PROJECT_COST_AMOUNT_ACTUAL])/[Currency Rate] | |
Project Cost Amount Rate % | Y | N | N | IF([Cost Amount Actual]>0,[Project Cost Amount Actual]/[Cost Amount Actual], BLANK()) | ||
Project Hours Actual | N | Y | SUM | N | SUM([Project_Hours_Actual]) | |
Project Hours Rate % | Y | N | N | IF([Total Hours Actual]>0,[Project Hours Actual]/[Total Hours Actual], BLANK()) | ||
Qty Actual | N | N | SUM | N | SUM([QTY]) | |
Reactive Cost Amount Actual | N | SUM([Reactive_Cost_Amount_Actual]) | ||||
Reactive Hours Actual | N | SUM([Reactive_Hours_Actual]) | ||||
Reactive Work % | N | CALCULATE(DIVIDE([Reactive Hours Actual],[Total Hours Actual]),FILTER('WORK TASK ACTUALS COST','WORK TASK ACTUALS COST'[Dim_Work_Order_ID]<>BLANK())) | ||||
Service Cost Amount Actual | N | Y | SUM | N | SUM([Service_Cost_Amount_Actual]) | |
Service Cost Amount Actual RC | Y | N | SUM | N | SUM([REP_CURR_SERVICE_COST_AMOUNT_ACTUAL])/[Currency Rate] | |
Service Cost Rate % | Y | N | N | IF([Cost Amount Actual]>0,[Service Cost Amount Actual]/[Cost Amount Actual], BLANK()) | ||
Service Hours Actual | N | Y | SUM | N | SUM([Service_Hours_Actual]) | |
Service Hours Rate % | Y | N | N | IF([Total Hours Actual]>0,[Service Hours Actual]/[Total Hours Actual], BLANK()) | ||
Total Hours Actual | N | Y | SUM | N | SUM([Total_Hours_Actual]) | |
WORK TASK ACTUALS COST Count | N | N | COUNTROWS | N | COUNTROWS('WORK TASK ACTUALS COST') |
Time based measures are calculated in the cube with respect to other measures. The table below defines the meaning/definition of the different time measures. These measures need to be used with a specific time dimension hierarchy [REPORTING_DATE].[RepDateMFHy].
Measure | Meaning |
YTD |
Aggregated value for current month in current year. E.g.
for period 202010 Ytd represents sum of periods 202000-202010. |
R12 |
For a given period, the sum all months from one year back up to the
previous month. E.g. Rolling 12 for 202010 is the sum of months 201910
- 202009 |
PY |
Previous Year The value of the corresponding month one year back. E.g. for month 202010, the value of month 201910. |
YTD PY |
Year to Date Previous Year Aggregated value for corresponding month one year back. E.g. for month 202010 YTD Previous Year represents sum of months 201901-201910. |
R12 PY |
Rolling 12 (completed) Months Previous Year For a given month, first going one year back, then taking the sum of all months from one (more) year back up to the previous month. E.g. for month 202010 the sum of month 201810-201909 |
Avg XXX Ytd | Sum XXX YTD/Count XXX YTD |
Avg XXX R12 | Sum XXX R12/Count XXX R12 |
XXX % YTD | Count XXX YTD/Count YYY YTD |
XXX % R12 | Count XXX R12/Count XXX R12 |
Model Name | Product Area |
Maintenance | Maintenance |
The data source for this object is defined using IFS Developer Tool. The data source contains a number of transformations where the model reads data from the last step, i.e. the Data source view name (DW Source View Name).
Additional information can be found in the online documentation of Information Sources.
Model Table | DW Source view (SQL Server) | BI Access View | Referenced Information Source | Recommended Access Type |
WORK TASK ACTUALS COST | FACT_WORK_TASK_ACTUALS_COST_TM | FACT_WORK_TASK_ACTUALS_COST_BI | FACT_WORK_TASK_ACTUALS_COST | Data Mart |